#ifndef FILTER_KERNEL
#define FILTER_KERNEL

#include <stdlib.h>
#include <stdio.h>
#include <math.h>

const float PI = 3.14159265358979323846f;

////////////////////////////////////////////////////////////////////////////////
// Kernel configuration
////////////////////////////////////////////////////////////////////////////////

const int  KERNEL_RADIUS_X = 32;       //was 32
const int  KERNEL_RADIUS_Y = 32;      //was 32
const int  KERNEL_RADIUS_T = 32;       //was 32


const int  KERNEL_W_X = (2 * KERNEL_RADIUS_X + 1);
const int  KERNEL_W_Y = (2 * KERNEL_RADIUS_Y + 1);
const int  KERNEL_W_T = (2 * KERNEL_RADIUS_T + 1);

const int KERNEL_SIZE_X = KERNEL_W_X * sizeof(float);
const int KERNEL_SIZE_Y = KERNEL_W_Y * sizeof(float);
const int KERNEL_SIZE_T = KERNEL_W_T * sizeof(float);


class Filter_kernel
{
public:
	Filter_kernel(float sigmav, float sigmau, float phi, float omega = 0);
	~Filter_kernel();

	float
		*h_kernel_x,
		*h_kernel_y,
		*h_kernel_t,
		tanp,
		omegax,
		omegay;
};

#endif